Gremlin で GameDay を始める
背景
Chaos engineering platform である Gremlin から GameDay という機能が追加されました。
この GameDay では何ができるかを確認してみます。
GameDay とは
GameDay の定義に一度振り返ってみます。
https://www.gremlin.com/gameday/ を引用しますとこのように書かれています。
GameDay は、カオスエンジニアリングの実践、インシデント対応プロセスのテスト、過去の停止の検証、またはサービスの未知の問題の発見を行うための組織化されたチームイベントです。
イベントとして期間を定め、障害に対応するリソースを十分に確保した上で取り組むことで インシデント対応プロセスの品質を保ちつつ、瑣末な異常を検知できます。
なにができるのか
GameDay における必要な情報を集約できます。
GameDay において必要な情報とは次のものがあります。
Type
行う GameDay の方向性を決める必要があります。 次の中から選ぶことができます。
- トレーニングとして行う
- 可観測性を調整する
- 障害を再現して調査する
- 異常な振る舞いがないか探索する
- その他
これらの方向性が意図せず混在している場合、対応方針が定まらずに時間が過ぎてしまう可能性があります。
Goal
行う GameDay の目的を決める必要があります。
Gremlin では Type を選択することでテンプレートが挿入されます。
同じ障害であっても Goal の内容によってとるべきアクションは大きく変わってきます。 なので、GameDay を行う目的の言語化を事前にしておくことが重要です。
Scenario
Gremlin の Scenario を設定します。登録できる Scenario は 20 個までの制限があります。
GameDay で行う注入する障害の内容を事前に設定する必要があります。 障害の内容が GameDay の目的と乖離している場合、大きな混乱だけをもたらす可能性があります。
また、実際に発生する障害も GameDay の Scenario に準拠している必要があります。 Gremlin ではここで登録した障害の内容を忠実に実行できることがメリットです。
Environment
どの環境で行う GameDay なのかを明記する必要があります。
同じ障害であっても、本番環境と開発環境では関係者やリスク、コストが異なります。
Dashboards
GameDay で使用すると思われる可観測性ツールのダッシュボードをまとめておきます。
Runbooks
GameDay で使用すると思われる手順書をまとめておきます。
余談ではありますが、GameDay と FireDrill(避難訓練) https://www.gremlin.com/blog/prepare-your-team-to-handle-incidents-remotely/ は明示的に異なると記載はあります。 ただ、 そういった用途での利用も想定していると思われます。
Position, Participant
GameDay での立ち位置を定め、周知する必要があります。
Gremlin では次の 4 つの役割を想定しています。ただ、最初は Owner と Coordinator を一人ずつアサインすることをお勧めしています。
- Owner
GameDay 開催者で目的の設定, 計画, 当日の GameDay 停止判断を行う役割です。
-
Coordinator
GameDay で実際にカオスエンジニアリングツールを設定し、攻撃を担当する役割です。
-
Observer
カオスエンニアリングツールや監視ツールの結果を収集し、参加者に通知します。
-
Reporter
GameDay の結果やメモ、得た気づきを記録します。
Notes, Actions, ScreenShots
実際の結果, メモ, 監視ツールやサイトの実際のスクリーンショットを残すことで GameDay の結果を振ります。
実際に作ってみる
では実際に GameDay を作ってみます。
- 左のメニューから
GameDays
を選択し,New GameDay
を選択します。
- 入力項目に沿った内容を入力します。
Configration
ではこのように表示されています。
Summary
ではこのように表示されています。
Notes
, Actions
に GameDay を受けたメモや次のアクションを書くことができます。
Attachments
では実際のスクリーンショットを残すことができます。
Export To PDF
では GameDay の結果を PDF に保存できます。